// /**
//  * @Description: 计算精度修复模块
//  * @author ZhouJianHui
//  * @date 2019/9/11
//  */
// 四舍五入保留/向下保留/向上保留
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function toFixedRound(arg, n) {
    if (n === 0) {
        return Math.round(arg);
    }
    try {
        let d;
        let carryD;
        const ds = arg.toString().split('.');
        let len = ds[1].length;
        let b0 = '';
        let k = 0;
        if (len > n) {
            while (k < n && ds[1].substring(0, ++k) === '0') {
                b0 += '0';
            }
            d = Number(ds[1].substring(0, n));
            carryD = Math.round(Number('0.' + ds[1].substring(n, len)));
            len = (d + carryD).toString().length;
            if (len > n) {
                return Number(ds[0]) + 1;
            } else if (len === n) {
                return Number(ds[0] + '.' + (d + carryD));
            }
            return Number(ds[0] + '.' + b0 + (d + carryD));
        }
    } catch (e) {
        console.log(e);
    }
    return arg;
}
// 条件格式
function format(result, digits, type) {
    if (digits) {
        if (type === 'normal') {
            return result.toFixed(digits);
        } else {
            // return toFixedRound(result, digits)
            return result.toFixed(digits);
        }
    } else {
        return result;
    }
}
// 加
function add(arg1, arg2, digits, type) {
    return format((Math.round(arg1 * 100) + Math.round(arg2 * 100)) / 100, digits, type);
}
// 减
function subtract(arg1, arg2, digits, type) {
    return format(add(arg1, -arg2), digits, type);
}
// 乘
function multiply(a, b, digits, type) {
    return format((Math.round(a * 10000) * Math.round(b * 10000)) / 100000000, digits, type);
}
// 除
function divide(arg1, arg2, digits, type) {
    let d1;
    let d2;
    const n1 = Number(arg1.toString().replace('.', ''));
    const n2 = Number(arg2.toString().replace('.', ''));
    try {
        d1 = arg1.toString().split('.')[1].length;
    } catch (e) {
        d1 = 0;
    }
    try {
        d2 = arg2.toString().split('.')[1].length;
    } catch (e) {
        d2 = 0;
    }
    // console.error('未格式前', format((n1 / n2) * Math.pow(10, d2 - d1)))
    // with (Math) {
    //
    // }
    return format((n1 / n2) * Math.pow(10, d2 - d1), digits, type);
}

/* 参数: a b  digits保留多少位小数点*/
export { add, subtract, multiply, divide };
